/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2025-04-14
 * Time: 9:34
 */
public class Main {
    public static void main(String[] args) {
        // 方式1：直接使用String拼接（效率最低）
        long start = System.currentTimeMillis();// 记录开始时间戳
        String s = "";
        for (int i = 0; i < 10000; i++) {// 循环10000次
            s += i; //等价于 s = new StringBuilder(s).append(i).toString(); 每次循环生成新StringBuilder和String对象
        }
        long end = System.currentTimeMillis();// 记录结束时间戳
        System.out.println(end - start);


        // 方式2：使用StringBuffer（线程安全，效率中等）
        start = System.currentTimeMillis();// 重置开始时间
        StringBuffer sbf = new StringBuffer();// 创建StringBuffer对象（线程安全）
        for (int i = 0; i < 10000; i++) {
            sbf.append(i); // 直接追加到原对象（同步操作）
        }
        end = System.currentTimeMillis();// 记录结束时间
        System.out.println(end - start);

        // 方式3：使用StringBuilder（非线程安全，效率最高）
        start = System.currentTimeMillis();
        StringBuilder sbd = new StringBuilder();// 创建StringBuilder对象（非线程安全）
        for (int i = 0; i < 10000; i++) {
            sbd.append(i); // 直接追加到原对象（无同步开销）
        }
        end = System.currentTimeMillis();
        System.out.println(end - start);
    }
}
/*
输出：
        74
        2
        0
*/
